home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / sml_nj / 93src.lha / src / runtime / mac / os_mac_eEdit.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-02-09  |  5.8 KB  |  194 lines

  1. /* eEdit.h     */
  2. /* 14Apr92  e  */
  3. /* 28Sep92  e  added print stuff */
  4.  
  5. #include <Types.h>
  6. #include <THINK.h>
  7. #include <Memory.h>
  8. #include <Quickdraw.h>
  9. #include <Fonts.h>
  10. #include <Controls.h>
  11. #include <Windows.h>
  12. #include <Events.h>
  13. #include <Scrap.h>
  14. #include <TextEdit.h>
  15. #include <ToolUtils.h>
  16. #include <Errors.h>
  17. #include <Printing.h>
  18. #include <Menus.h>
  19.  
  20. #define CONTEXT_LINES         3            /* lines to show around caret for eTeShowCaret() */
  21.  
  22. #define    PAGE_DELAY            1
  23.  
  24. #define MIN_RUNS            (10)        /* # runs to extend the run starts block */
  25. #define MIN_LINES            (100)        /* # lines to extend the line starts block */
  26. /* 28May92  e  was:
  27. #define MAX_SCROLL_CHARS    (1024)        /* max # of chars to scroll horizontally */
  28.  
  29. /*
  30.  * ASCII character definitions
  31.  */
  32. #define ENTER            0x03            /* keypad ENTER */
  33. #define DELETE            0x08            /* delete/backspace key */
  34. #define TAB                0x09            /* normal TAB    - stored in text */
  35. #define RETURN            0x0D            /* normal RETURN - stored in text */
  36. #define SPACE            0x20
  37.  
  38. /*
  39.  * ARROW key definitions - uses ASCII codes, not keycodes.
  40.  */
  41. #define LEFT_ARROW        0x1C
  42. #define RIGHT_ARROW        0x1D
  43. #define UP_ARROW        0x1E
  44. #define DOWN_ARROW        0x1F
  45.  
  46. /*
  47.  * KEYCODE definitions for function keys on extended keyboard
  48.  */
  49. #define KeyF1            0x7A
  50. #define KeyF2            0x78
  51. #define KeyF3            0x63
  52. #define KeyF4            0x76
  53. #define KeyF5            0x60
  54. #define KeyF6            0x61
  55. #define KeyF7            0x62
  56. #define KeyF8            0x64
  57. #define KeyF9            0x65
  58. #define KeyF10            0x6D
  59. #define KeyF11            0x67
  60. #define KeyF12            0x6F
  61. #define KeyF13            0x69
  62. #define KeyF14            0x6B
  63. #define KeyF15            0x71
  64.  
  65. #define KeyHelp            0x72
  66. #define KeyHome            0x73
  67. #define KeyPageUp        0x74
  68. #define KeyDel            0x75
  69. #define KeyEnd            0x77
  70. #define KeyPageDown        0x79
  71.  
  72. /*  8Jul92  e   for: curStyle  */
  73. #define NOSTYLE (-1)
  74.  
  75. typedef long LineRec;
  76.  
  77. typedef long RunRec;
  78.  
  79. struct ChPos {
  80.     short v;
  81.     short h;
  82. };
  83. typedef struct ChPos ChPos;
  84.  
  85. typedef struct eRec
  86. {    Rect         viewRect;
  87.     Rect         caretRect;
  88.     ChPos         bounds;
  89.     ChPos         position;
  90.     ChPos         caretChPos;
  91.     ChPos         selStart;
  92.     ChPos         selEnd;
  93.     ChPos         writeChPos;        /* chpos for writer (vs. human editor) 8Jul92  e  */
  94.     Boolean     selActive;
  95.     Boolean     caretState;
  96.     Boolean     active;
  97.     Boolean     dirty;
  98.     short         leftMargin;
  99.     short         topMargin;
  100.     short         hContext;        /* #chars/#lines visible around caret in eTeShowCaret() */
  101.     short         vContext;
  102.     short         hOverlap;        /* #chars/#lines visible between one page scroll & the next */
  103.     short         vOverlap;
  104.     short         hStep;            /* #chars/#lines to step for scroll arrow */
  105.     short         vStep;
  106.     short         wrap;            /*              5Jul92  for line wrap, max chars/line */
  107.     short        tabStops;        /*              8Jul92  measured in spaces */
  108.     short        autoInd;        /*                25Jan93  auto indent flag   */
  109.     short        spare;
  110.     short        hSpan;            /* computed */
  111.     short        vSpan;
  112.     short         hScale;            /* computed - pixels per scroll unit */
  113.     short         vScale;
  114.     long         hOrigin;        /* computed */
  115.     long         vOrigin;
  116.     short         width;            /* computed */
  117.     short         height;
  118.     short         caretHeight;    /* computed */
  119.     short         fontAscent;
  120.     short         tabWidth;        /* computed     8Jul92  renamed */
  121.     short         spaceWidth;
  122.     short         maxRight;        /* computed */
  123.     short         qRuns;
  124.     short         linesAllocated;    /* computed */
  125.     short         runsAllocated;
  126.     short         curStyle;        /* computed     8Jul92  to speed up drawing */
  127.     short        fustStyle;
  128.     TextStyle    style[2];        /* use eTeSetStyles() */
  129.     ProcPtr     eTeWordBreak;    /* use eTeWordBreak() */
  130.     WindowPtr     macPort;        /* use eTeNew() */
  131.     ControlHandle hSBar;        /* use eTeNew() */
  132.     ControlHandle vSBar;        /* use eTeNew() */
  133.     Handle         hText;            /* use eTeNew() or eTeSetTextHandle() */
  134.     LineRec     **hLines;        /* computed */
  135.     long         **hRuns;        /* computed */
  136.     THPrint        hPrint;            /* Handle to print record for file       28Sep92  e  */
  137. } eRec, **eTeHandle;
  138.  
  139. OSErr    eTePrint( eRec **hE, Boolean jobDlg, Boolean firstJob, Str255 flnm);    /*   28Sep92  e  */
  140.  
  141. ChPos     eTeOffsetToChPos( eRec **hE, register long anOffset );
  142. long     eTeChPosToOffset( eRec **hE, ChPos aPos );
  143. long     eTeTextLength( eRec **hE );
  144.  
  145. void     eTeGetRun( eRec **hE, long *sta, long *end );
  146.  
  147. void     eTeScroll( eRec **hE, short hDelta, short vDelta, Boolean redraw );
  148. void     eTeScrollTo( eRec **hE, ChPos aPosition, Boolean redraw );
  149. void     eTeShowCaret( eRec **hE );
  150.  
  151. void     eTeSetWrap( eRec **hE, short wrap );
  152. void     eTeSetTabStop( eRec **hE, short aTabStop );
  153. void     eTeSetWordBreak( eRec **hE, ProcPtr aFunc );
  154.  
  155. void     eTePutScrap();                                  /*  13Aug92  e  */
  156. void     eTeGetScrap();                                  /*  13Aug92  e  */
  157. void    eTeUndo( eRec **hE );                           /*  13Aug92  e  */
  158. void    eTeEditMenuUpdate( eRec **hE, MenuHandle hM );    /*  13Aug92  e  */
  159.  
  160. void     eTeIdle( eRec **hE );
  161. void     eTeActivate( eRec **hE );
  162. void     eTeDeactivate( eRec **hE );
  163. void     eTeDraw( eRec **hE, Rect *area );
  164. void     eTeUpdate( eRec **hE );
  165. void     eTeClick( eRec **hE, Point hitPt, short modifierKeys, long when );
  166. void     eTeCut( eRec **hE );
  167. void     eTeCopy( eRec **hE );
  168. void     eTeDelete( eRec **hE );
  169. void     eTeKillTo( eRec **hE, ChPos chPos );  /* 12Jul92  e */
  170. void     eTePaste( eRec **hE, short style );
  171. void     eTeInsert( eRec **hE, Ptr textPtr, long numChars, short style );
  172. void     eTeWrite(  eRec **hE, Ptr textPtr, long numChars, short style );      /*  9Jul92  e */
  173. void     eTeTranspose( eRec **hE, long beg, long midl, long midr, long end ); /* 22Jul92  e */
  174. void     eTeKey( eRec **hE, char theChar, Byte keyCode, short modifiers, short style );
  175. void     eTeSetSelect( eRec **hE, long aStart, long anEnd );
  176.  
  177. short     eTeSetTextPtr( eRec** hE, Ptr pT, long numChars );
  178. short     eTeSetTextHandle( eRec** hE, Handle hT );
  179. short     eTeSetTextHandleDetabify( eRec **hE, Handle hT, short tabstops );
  180.  
  181. void     eTeNewView( eRec **hE, Rect *view );
  182. void     eTeSetStyles( eRec **hE, TextStyle *ts0, TextStyle *ts1 );
  183.  
  184. void     eTeInit( void );
  185. eRec  **eTeNew( WindowPtr macPort, Rect viewRect, short tabStops, short wrap,
  186.                  short autoInd, ControlHandle aHSizing, ControlHandle aVSizing );
  187. void     eTeDispose( eRec **hE );
  188.  
  189. extern EventRecord        gLastMouseUp;
  190. extern EventRecord        gLastMouseDown;
  191. extern long                gMaxSleep;
  192.  
  193. /* end of eEdit.h */
  194.